package zx.lrn.notes.basic_grammer.about_collections;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

/**
 * @ClassName: IteratorLrn
 * @Description: 迭代器温习，主要温习以下remove方法
 * @Author: zhaoxuan
 * @Date: 2020/3/4 23:27
 **/
public class IteratorLrn {
    public static void main(String[] args) {
        Collection<String> collection = new ArrayList<>();
        collection.add("a");
        collection.add("b");
        collection.add("c");
        collection.add("d");
        collection.add("e");
        Iterator<String> iterator = collection.iterator();
        if (iterator.hasNext()) {
            iterator.next();
            // remove前需要通过next方法移动迭代器的指针，remove将会删掉指针跨过的元素
            iterator.remove();
            iterator.remove(); // ERROR 这次删除将失败，因为指针没有再次移动
            iterator.next();
            // forEachRemaining会从指针当前位置开始向后遍历
            iterator.forEachRemaining(System.out::println);
        }
        System.out.println(collection);
    }
}
